首页 > 编程笔记

MySQL MAKE_SET()函数的用法

在 MySQL 中,MAKE_SET()函数的功能是按照二进制位来选取字符串。

MAKE_SET() 函数的语法格式如下:
MAKE_SET(x, s1, s2, ..., sn)

例如,x 的值是 5,5 的二进制是 0101,这个二进制从右往左的第 1 位和第 3 位是 1,所以选取 s1 和 s3。s1,s2,...,sn 中的 NULL 值不会被添加到结果中。

【例4.52】使用MAKE_SET函数根据二进制位选取指定字符串,输入语句如下:
mysql> SELECT  MAKE_SET(1,'a','b','c') as col1, MAKE_SET(1 | 4,'hello','nice','world') as col2,MAKE_SET(1 | 4,'hello','nice',NULL,'world') as col3, MAKE_SET(0,'a','b','c') as col4;
+------+-------------+-------+------+
| col1 | col2             | col3  | col4 |
+------+-------------+-------+------+
| a    | hello,world | hello |      |
+------+-------------+-------+------+
1 的二进制值为 0001,4 的二进制值为 0100,1 与 4 进行或操作之后的二进制值为 0101,从右到左第 1 位和第 3 位为 1。

MAKE_SET(1,'a','b','c') 返回第 1 个字符串;MAKE_SET(1 | 4,'hello','nice','world') 返回从左端开始第 1 个和第 3 个字符串组成的字符串;NULL 不会添加到结果中,因此 SET(1|4,'hello','nice',NULL,'world') 只返回第 1 个字符串“hello”;SET(0,'a','b','c') 返回空字符串。

推荐阅读

副业交流群 关注微信公众号,加入副业交流群,学习变现经验,交流各种打法。